名词解释

Master, Node:

  • Master:API Server ,Scheduler,Controller-Manager
  • Node:kubelet,doker,kube-proxy

Pod, Label, Label Select:

  • Lable :key=value 形式

  • Label Select:

  • Pod:

    ​ 1. 自主式 Pod
    ​ 2. 控制器管理的 Pod
    ​ 2.1), Replication Controller:遵循多退少补的原则,保证 Pod 的可靠性,支持滚动更新,回滚等。
    ​ 2.2), ReplicaSet:不直接使用
    ​ 2.3), Deployment:用得最多,但是只能用于管理无状态的应用
    ​ 2.4), StatefulSet:负责管理有状态的应用
    ​ 2.5), DeamonSet:在每一个 node 上运行一份副本
    ​ 2.6), Job,CronJob:运行作业,定时作业

Service 是针对相同功能的 Pod 提供一套对外的访问服务,因为 Pod 是有生命周期的,不可将 IP,主机名等作为固定的访问方式。Service 底层是 iptables 的一些规则,且有 DNS Pod (一个附件)将 Service 的名称进行解析。Service 的负载均衡是由 Linux 中的 IPVS 实现的。控制器负责管理 Pod。标签和标签选择器让控制器更好的,更精确的选择对应的 Pod,同样也让 Service 更好的选择相关的 Pod。

K8s 中的网络分为三种,分别是节点网络,集群网络(Service 网络),Pod 网络。三种网络不在同一种网段内。Pod 内多个容器之间采用本地通信。

API Server 和 etcd 之间的通信需要证书,etcd 内部之间的相互通信也需要证书,API Server 和 Node 上的 kubelet 需要证书,API Server 和 Node 上的 kube-proxy 通信也需要证书,API Server 对外提供服务也需要证书。所以至少需要五套证书。

k8s 中网络分为三种,除开节点网络由主机运营商负责外,其他的两种网络需要我们用插件的方式进行管理和配置,k8s 不提供管理和配置的方法。目前常用的插件有 flannel(支持网络配置,使用比较简单),calico(支持网络配置,网络策略,使用比较复杂),canel(支持网络配置,网络策略,使用比较简单),其他还有很多插件,它们都有一个共同点,都遵循 CNI(容器网络接口)